What is @aws-sdk/credential-provider-process?
The @aws-sdk/credential-provider-process package is part of the AWS SDK for JavaScript (v3) and is used to load AWS credentials from a process specified in the shared AWS config and credentials files. This is useful for scenarios where you want to source credentials from an external process, which can be a custom credential provider or a token service.
What are @aws-sdk/credential-provider-process's main functionalities?
Loading credentials from a process
This feature allows you to load AWS credentials by executing a process defined in your AWS config file. The credentials returned by the process are then used to authenticate AWS SDK clients.
const { fromProcess } = require('@aws-sdk/credential-provider-process');
const credentials = fromProcess();
// Use credentials with an AWS SDK client
const client = new SomeAwsClient({ credentials });
Other packages similar to @aws-sdk/credential-provider-process
@aws-sdk/credential-provider-ini
This package is similar to @aws-sdk/credential-provider-process in that it is also used to load AWS credentials, but it does so from the AWS shared configuration file (typically located at ~/.aws/credentials). It does not execute an external process to obtain credentials.
@aws-sdk/credential-provider-cognito-identity
This package provides a way to retrieve AWS credentials by using Amazon Cognito Identity. It is different from @aws-sdk/credential-provider-process as it specifically targets Cognito for authentication rather than executing a custom process.
@aws-sdk/credential-provider-web-identity
This package is designed to retrieve AWS credentials from web identity token files, which is useful for workloads running on EKS or using OIDC identity providers. Unlike @aws-sdk/credential-provider-process, it does not involve running a separate process to obtain credentials.
@aws-sdk/credential-provider-sso
This package allows users to retrieve AWS credentials using AWS Single Sign-On (SSO). It differs from @aws-sdk/credential-provider-process by focusing on SSO as the credential source rather than a custom process.
AWS Credential Provider for Node.JS - Shared Configuration Files
This module provides a function, fromSharedConfigFiles
that will create
CredentialProvider
functions that read from a shared credentials file at
~/.aws/credentials
and a shared configuration file at ~/.aws/config
. Both
files are expected to be INI formatted with section names corresponding to
profiles. Sections in the credentials file are treated as profile names, whereas
profile sections in the config file must have the format of[profile profile-name]
, except for the default profile. Please see the sample
files below for examples of well-formed configuration and
credentials files.
Profiles that appear in both files will not be merged, and the version that
appears in the credentials file will be given precedence over the profile found
in the config file.
Supported configuration
You may customize how credentials are resolved by providing an options hash to
the fromSharedConfigFiles
factory function. The following options are
supported:
profile
- The configuration profile to use. If not specified, the provider
will use the value in the AWS_PROFILE
environment variable or a default of
default
.filepath
- The path to the shared credentials file. If not specified, the
provider will use the value in the AWS_SHARED_CREDENTIALS_FILE
environment
variable or a default of ~/.aws/credentials
.configFilepath
- The path to the shared config file. If not specified, the
provider will use the value in the AWS_CONFIG_FILE
environment variable or a
default of ~/.aws/config
.
Sample files
~/.aws/credentials
[default]
credential_process = /usr/local/bin/awscreds
[dev]
credential_process = /usr/local/bin/awscreds dev
[prod]
credential_process = /usr/local/bin/awscreds prod
~/.aws/config
[default]
credential_process = /usr/local/bin/awscreds
[profile dev]
credential_process = /usr/local/bin/awscreds dev
[profile prod]
credential_process = /usr/local/bin/awscreds prod